﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.OleDb;

public partial class Account_UpLoad : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        OleDbConnection Connection = new OleDbConnection(DbObject.CONN_STRING);
        Connection.Open();
        OleDbTransaction Transaction = Connection.BeginTransaction();
        try
        {
            HashDataTable hst = new HashDataTable();

            //        insert into tb810310
            //(SITEID, FILENAME, FILESIZE, FILECONTENTTYPE, 
            // TABLENAME, PARENTKEY, REGDATE, REGUSER, EDTDATE, EDTUSER)
            //values(102, '개발시험',100,'image/pjpeg', 
            // 'TB100010',1,getdate(),1,getdate(),1)

            HttpPostedFile uploadFile = Request.Files["Filename"];
            int FileLen = uploadFile.ContentLength;

            byte[] data = new byte[FileLen];
            
            uploadFile.InputStream.Read(data, 0, FileLen);

            hst.Add("SITEID", 10124);
            hst.Add("FILENAME", getfname(Request.Files["Filename"].FileName));
            hst.Add("FILESIZE", FileLen);
            hst.Add("FILEDATA", data);
            
            hst.Add("FILECONTENTTYPE", Request.Files["Filename"].ContentType);
            hst.Add("TABLENAME", "TB100010");
            hst.Add("PARENTKEY", Request.Form["filecstid"].ToString());
            hst.Add("FILEOBJ", "PHOTO");
            
            hst.Add("REGDATE", hst.TIMEDATE);
            hst.Add("REGUSER", 102);
            hst.Add("EDTDATE", hst.TIMEDATE);
            hst.Add("EDTUSER", 102);

            hst.TableName = "tb810310";
            hst.InsertQuery(Transaction);
            Transaction.Commit();
            Response.Write("파일이 저장되었습니다");

        }
        catch (Exception ee)
        {
            Transaction.Rollback();
            Response.Write(ee.Message + " / 파일이 실패되었습니다");
        }


        //DbObject.ExecuteNonQuery();
        
        //Request.Files["Filename"]
        //Request.Form["filecstid"]

//if( Upload.PostedFile.FileName != "" )
//            {				
//                // 파일의 Reference를 받아옴.
//                HttpPostedFile uploadFile = Upload.PostedFile;

//                // 파일 사이즈를 저장.
//                int fileLen = uploadFile.ContentLength; 

//                // 파일이 유효한지 테스트.
//                if( fileLen > 0 )
//                {
//                    if ( fileLen < uploadrestrict)
//                    {
//                        // 파일 ID 저장.
//                        file.fileID = this.KEY;
						
//                        // 파일 이름 저장.
//                        file.fileName = Path.GetFileName(uploadFile.FileName);	
//                        this.xmlFILENAME.Text = file.fileName;
					
//                        // 파일 content Type 저장.
//                        file.fileContentType = uploadFile.ContentType.ToString();							

//                        // 파일 Size 저장.
//                        file.fileSize = fileLen.ToString();

//                        // 해당 테이블 저장.
//                        file.tableName = tableName;

//                        // 해당 키 저장.
//                        file.parentKey = parentKey;
					
//                        // 사용자 저장.
//                        file.QUERYUSER = QUERYUSER;		

//                        // 폴더 Path 설정
//                        file.FOLDERPATH = this.FOLDERPATH;

//                        // 공유 여부 및 공개 여부 설정
//                        file.ISPUBLIC = "0";
//                        file.ISSHARED = "1";
//                        file.ISLINK = "0";

//                        // byte array 선언
//                        byte[] data = new byte [fileLen];
				
//                        // WS-Attachment를 이용한 본문 첨부파일 추가
//                        uploadFile.InputStream.Read(data,0,fileLen);  
                      	
//                        file.DATA = data;
											

//                        // DB에 File을 Upload.
//                        rlt = wsProxy.FileUploadToDB_WITHOUTDIME(file);
						
//                        return rlt;

        //XDProcedureRlt rlt = new XDProcedureRlt();

        //// Stored Procedure 명 설정.
        //string sSPName = "USP810310_01CU";

        //// 파일 Size int 변수로 변환.
        //int size = int.Parse(file.fileSize);

        //// SqlParameter 설정.
        //SqlParameter[] arParms = DbObject.GetCachedParameters(sSPName);
        //if (arParms == null)
        //{
        //    arParms = new SqlParameter[] {   new SqlParameter("@FILEID", SqlDbType.Int,4),
        //                                         new SqlParameter("@FILEDATA", SqlDbType.Image),
        //                                         new SqlParameter("@FILENAME", SqlDbType.NVarChar,200),
        //                                         new SqlParameter("@FILECONTENTTYPE", SqlDbType.NVarChar,20),
        //                                         new SqlParameter("@FILESIZE",SqlDbType.Int,4),
        //                                         new SqlParameter("@TABLENAME",SqlDbType.NVarChar, 40),												 
        //                                         new SqlParameter("@PARENTKEY",SqlDbType.Int,4),	
        //                                         new SqlParameter("@FOLDERPATH",SqlDbType.NVarChar,395),
        //                                         new SqlParameter("@LINKURL",SqlDbType.NVarChar,300),
        //                                         new SqlParameter("@ISSHARED",SqlDbType.TinyInt),
        //                                         new SqlParameter("@ISPUBLIC",SqlDbType.TinyInt),
        //                                         new SqlParameter("@ISLINK",SqlDbType.TinyInt),
        //                                         new SqlParameter("@QUERYUSER",SqlDbType.Int,4),
        //                                         new SqlParameter("@RETURNKEY",SqlDbType.BigInt) };
        //    DbObject.CacheParameters(sSPName, arParms);
        //}
        //if (file.fileID != null && file.fileID != "")
        //    arParms[0].Value = int.Parse(file.fileID);
        //else
        //arParms[0].Value = "0";
        //arParms[1].Value = file.DATA;
        //arParms[2].Value = file.fileName;
        //arParms[3].Value = file.fileContentType;
        //arParms[4].Value = size;
        //arParms[5].Value = file.tableName;
        //if (file.parentKey != "" && file.parentKey != null)
        //{
        //    arParms[6].Value = file.parentKey;
        //}
        //else
        //{
        //    arParms[6].Value = 0;
        //}
        //arParms[7].Value = file.FOLDERPATH;
        //arParms[8].Value = file.LINKURL;
        //arParms[9].Value = file.ISSHARED;
        //arParms[10].Value = file.ISPUBLIC;
        //arParms[11].Value = file.ISLINK;
        //arParms[12].Value = int.Parse(file.QUERYUSER);
        //arParms[13].Direction = ParameterDirection.Output;


        //// USP를 실행하고 return 값 받음.
        //rlt.RCOUNT = (int)DbObject.ExecuteNonQuery(DbObject.CONN_STRING_NON_DTC, CommandType.StoredProcedure, sSPName, arParms);
        //rlt._KEY = int.Parse(arParms[13].Value.ToString());

        //return rlt;


    }

    private string getfname(string path)
    {
        int last = path.LastIndexOf(@"\");
        string fname = path.Substring(last + 1);
        return fname;
    }
}